const install = Vue => {
  // 如何往组件实例身上挂一个 $store 呢？ 可以通过混入

  // 全局混入：可以往所有组件实例上混点配置进去
  Vue.mixin({
    // 如果和组件自身的冲突，那么以组件自己的为准
    data() {
      return {
        msg: '呵呵',
      }
    },
    // 如果和组件自身的冲突，那么以组件自己的为准
    methods: {
      onClick() {
        console.log('混入的 onClick method')
      },
    },
    // 生命周期钩子，会和组件自己的合并，先执行混入的钩子，再执行自己的钩子
    created() {
      console.log('混入的 created')
    },
    mounted() {
      console.log('混入的 mounted')
    },
  })
}

class Store {
  constructor(options) {}
}

export default {
  install,
  Store,
}
